Instead of ‘login’ and ‘password’ use your credentials from https://app.dataforseo.com/api-access
<?php // You can download this file from here https://cdn.dataforseo.com/v3/examples/php/php_RestClient.zip require('RestClient.php'); $api_url = 'https://api.dataforseo.com/'; try { // Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access $client = new RestClient($api_url, null, 'login', 'password'); } catch (RestClientException $e) { echo "n"; print "HTTP code: {$e->getHttpCode()}n"; print "Error code: {$e->getCode()}n"; print "Message: {$e->getMessage()}n"; print $e->getTraceAsString(); echo "n"; exit(); } try { // using this method you can get a list of locations // GET /v3/keywords_data/dataforseo_trends/locations $result = $client->get('/v3/keywords_data/dataforseo_trends/locations'); print_r($result); // do something with result } catch (RestClientException $e) { echo "n"; print "HTTP code: {$e->getHttpCode()}n"; print "Error code: {$e->getCode()}n"; print "Message: {$e->getMessage()}n"; print $e->getTraceAsString(); echo "n"; } $client = null; ?>
The above command returns JSON structured like this:
{ "version": "0.1.20210917", "status_code": 20000, "status_message": "Ok.", "time": "0.1012 sec.", "cost": 0, "tasks_count": 1, "tasks_error": 0, "tasks": [ { "id": "09201832-1535-0120-0000-012e5cc7e0d9", "status_code": 20000, "status_message": "Ok.", "time": "0.0244 sec.", "cost": 0, "result_count": 2383, "path": [ "v3", "keywords_data", "dataforseo_trends", "locations" ], "data": { "api": "keywords_data", "function": "locations", "se": "dataforseo_trends" }, "result": [ { "location_code": 2004, "location_name": "Afghanistan", "location_code_parent": null, "country_iso_code": "AF", "location_type": "Country", "geo_name": "Afghanistan", "geo_id": "AF" }, { "location_code": 2008, "location_name": "Albania", "location_code_parent": null, "country_iso_code": "AL", "location_type": "Country", "geo_name": "Albania", "geo_id": "AL" }, { "location_code": 2010, "location_name": "Antarctica", "location_code_parent": null, "country_iso_code": "AQ", "location_type": "Country", "geo_name": "Antarctica", "geo_id": "AQ" }, { "location_code": 2012, "location_name": "Algeria", "location_code_parent": null, "country_iso_code": "DZ", "location_type": "Country", "geo_name": "Algeria", "geo_id": "DZ" }, { "location_code": 2016, "location_name": "American Samoa", "location_code_parent": null, "country_iso_code": "AS", "location_type": "Country", "geo_name": "American Samoa", "geo_id": "AS" }, { "location_code": 2020, "location_name": "Andorra", "location_code_parent": null, "country_iso_code": "AD", "location_type": "Country", "geo_name": "Andorra", "geo_id": "AD" }, { "location_code": 2024, "location_name": "Angola", "location_code_parent": null, "country_iso_code": "AO", "location_type": "Country", "geo_name": "Angola", "geo_id": "AO" } ] } ] }
You will receive the list of DataForSEO Trends locations by calling this API. You can filter the list of locations by country when setting a task. Please note that the minimum geographic scope supported for the DataForSEO Trends API is country level.
You can also download the full list of supported locations in the CSV format (last updated 2024-10-14).
Description of the fields for setting a task:
Field name | Type | Description |
---|---|---|
country |
string | country ISO code optional field specify the ISO code if you want to filter the list of locations by country example: us |
As a response of the API server, you will receive JSON-encoded data containing a tasks
array with the information about available locations.
Field name | Type | Description |
---|---|---|
version |
string | the current version of the API |
status_code |
integer | general status code you can find the full list of the response codes here |
status_message |
string | general informational message you can find the full list of general informational messages here |
time |
string | execution time, seconds |
cost |
float | total tasks cost, USD |
tasks_count |
integer | the number of tasks in the tasks array |
tasks_error |
integer | the number of tasks in the tasks array returned with an error |
tasks |
array | array of tasks |
id |
string | task identifier unique task identifier in our system in the UUID format |
status_code |
integer | status code of the task generated by DataForSEO; can be within the following range: 10000-60000 you can find the full list of response codes here |
status_message |
string | informational message of the task you can find the full list of general informational messages here |
time |
string | execution time, seconds |
cost |
float | cost of the task, USD |
result_count |
integer | number of elements in the result array |
path |
array | URL path |
data |
object | contains the parameters passed in the URL of the GET request |
result |
array | array of results |
location_code |
integer | location code |
location_name |
string | full name of the location |
location_code_parent |
integer | the code of the superordinate location example: "location_code": 9041134, where location_code_parent corresponds to:"location_code": 20044, |
country_iso_code |
string | ISO country code of the location |
location_type |
string | location type possible values according to Google’s target types |
geo_name |
string | DataForSEO trends location name you can use this field for matching obtained results with the location_name parameter specified in the request |
geo_id |
string | DataForSEO trends location identifier you can use this field for matching obtained results with the location_code parameter specified in the request |